#pragma once
#include "SampleBase.h"
#include "glm/glm.hpp"
#include "glm/gtx/quaternion.hpp"
#include "GLTexture.h"
#include <memory>
#include <assimp/scene.h>
#include <assimp/postprocess.h>
#include <assimp/cimport.h>
#include <assimp/version.h>
#include <vector>
#include "GLShader.h"
#include "Grid.h"
using glm::mat4;
using glm::vec3;
using glm::vec4;
struct FrameData
{
	mat4 mvp;
	int isWireframe;
};

class TestSample : public SampleBase {
public:
	TestSample();
	virtual ~TestSample();

	virtual void Init() override;
	virtual void Update(float deltatime) override;
	virtual void Render(float aspect) override;
	virtual void OnGUI() override;
	virtual void ShutDown() override;
private:
	glm::vec4 color;
	int numVertices;
	GLProgram* program;
	GLuint perFrameDataBuffer;
	GLsizeiptr kBufferSize;
	FrameData FrameData;
	GLuint vao;
	GLuint meshData;
	mat4 m;
	mat4 p;
	mat4 v;
	float angle;
};